package cn.handong.tool.Java文件操作;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.text.DecimalFormat;

import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.*;

public class ReadExcel {
    public static void main(String[] args) {
        try {
            // 指定要读取的Excel文件路径  如果只写文件名，那么该文件要放在src同级别目录下
            String filePath = "test.xlsx";
            
            // 创建文件输入流
            FileInputStream fis = new FileInputStream(filePath);
            
            // 创建工作簿对象
            Workbook workbook = WorkbookFactory.create(fis);
            
            // 选择要操作的工作表，这里假设选择第一个工作表
            Sheet sheet = workbook.getSheetAt(1);

            // 设置数值格式化对象，指定保留两位小数
            DecimalFormat decimalFormat = new DecimalFormat("0");

            // 遍历行
            for (Row row : sheet) {
                // 遍历单元格
                for (Cell cell : row) {
                    // 获取单元格的数据类型
                    CellType cellType = CellType.forInt(cell.getCellType());
                    // 根据数据类型获取单元格的值并打印出来
                    if (cellType == CellType.STRING) {
                        System.out.print(cell.getStringCellValue()+" ");
                    } else if (cellType == CellType.NUMERIC) {
                        double numericValue = cell.getNumericCellValue();
                        String formattedValue = decimalFormat.format(numericValue);
                        System.out.print(formattedValue+" ");
                    }
                    // 可以根据需要处理其他数据类型，如日期、布尔值等
                }
                System.out.println();
            }
            
            // 关闭文件输入流
            fis.close();
            
        } catch (IOException | InvalidFormatException e) {
            e.printStackTrace();
        }
    }
}
